package domainmodel;


import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

public class KaartSpel_Test {
	
	private KaartSpel spel;
	private Kaart kaart;
	
	@Before
	public void setUp() throws Exception {
		spel = new KaartSpel();
		kaart = new Kaart("Harten", 8);
	}
	
	@Test
	public void test_getKaart_Geldige_waarde_word_aanvaard(){
		assertEquals(spel.getKaart("Harten", 8), kaart);
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_getKaart_Te_hoog_kaartnummer_word_niet_aanvaard(){
		spel.getKaart("Harten", 14);
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_getKaart_Te_laag_kaartnummer_word_niet_aanvaard(){
		spel.getKaart("Harten", 0);
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_getKaart_Verkeerd_kaarttype_word_niet_aanvaard(){
		spel.getKaart("Boeren", 12);
	}
	
	@Test
	public void test_getKaart_geeft_Kaart_terug(){
		spel.getKaart();
	}
	
	@Test
	public void test_getKaart_geeft_Kaart_terug_op_geldige_positie(){
		spel.getKaart(12);
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_getKaart_geeft_geen_Kaart_terug_op_ongeldige_positie(){
		spel.getKaart(60);
	}
	
	@Test
	public void test_addKaart_geeft_Kaart_terug_op_geldige_positie(){
		spel.getKaart(12);
	}
	
	@Test
	public void test_addKaart_Geldige_waarde_word_aanvaard(){
		spel.addKaart(new Kaart("Harten", 12));
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_addKaart_Te_laag_kaartnummer_word_niet_aanvaard(){
		spel.addKaart(new Kaart("Harten", 0));
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_addKaart_Te_hoog_kaartnummer_word_niet_aanvaard(){
		spel.addKaart(new Kaart("Harten", 16));
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_addKaart_Verkeerd_kaarttype_word_niet_aanvaar(){
		spel.addKaart(new Kaart("Boeren", 12));
	}
}
